package com.bifang.module.file.gateway.fileController.req;

import com.bifang.assistant.common.vo.BaseVO;
import com.bifang.module.file.common.vo.FileMetadataVO;
import com.bifang.module.file.gateway.fileController.valid.FileValidators;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;

@Data
public class FileUploadReq extends BaseVO {
    /** 文件id */
    @Schema(description = "文件主键")
    private BigDecimal fileId;
    @Schema(description = "查看文件ID")
    private String showId;
    /** 文件分类 */
    @Schema(description = "文件分类")
    private String fileClassCode;

    /** 文件名称 */
    @Schema(description = "文件名称")
    @NotBlank(
            groups = {FileValidators.UploadFileBase64.class},
            message = "文件名称不能传空")
    private String fileName;

    /** 文件后缀（文件类型） */
    @Schema(description = "文件后缀（文件类型）")
    private String fileSuffix;

    /** 文件大小 */
    @Schema(description = "文件大小")
    private Integer fileSize;

    /** 文件加密密码 */
    @Schema(description = "文件加密密码")
    private String filePassowrd;

    /** 压缩包解压密码 */
    @Schema(description = "压缩包解压密码")
    private String zipPassword;
    /** 上传人 */
    @Schema(description = "上传人")
    private String uploader;

    /** 上传人id */
    @Schema(description = "上传人id")
    private String uploaderId;

    /** 备注 */
    @Schema(description = "备注")
    private String remarks;
    /** base64 文件 */
    @Schema(description = "base64 文件")
    @NotBlank(
            groups = {FileValidators.UploadFileBase64.class},
            message = "文件不能传空")
    private String file;
    /** 强制执行标志 */
    @Schema(description = "强制执行标志 false 否 true 是")
    private Boolean forceFlag;

    @Schema(description = "是否根据上传人控制，false 否 true 是")
    private Boolean uploaderFlag;
    /** 文件元数据 */
    @Schema(description = "文件元数据")
    private List<FileMetadataVO> metadataList;
}
